package com.treetao.union.db.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.treetao.union.db.model.MallCoupon;
import com.treetao.union.db.model.MallCouponRecord;
/**
 * <p>
 * 优惠券 服务类
 * </p>
 *
 * @author Dev.M
 * @since 2020-05-22
 */
public interface MallCouponService extends IService<MallCoupon> {
	/**
	 * 获取可领取的优惠券（在领取时间内）
	 * @return
	 */
	List<MallCoupon> getCanGetAvaliableCoupons();
	
	/**
	 * 获取我已领取的，而且可用的优惠券
	 * @param max 最大满金额
	 * @return
	 */
	List<MallCouponRecord> getMyCanUseCoupons(Long userId,Double max);
	
	/**
	 * 获取我的已使用的优惠券
	 * @return
	 */
	List<MallCouponRecord> getMyUsedCoupons(Long userId);
	
	/**
	 * 获取领取的，但已过期的优惠券
	 * @return
	 */
	List<MallCouponRecord> getMyOverdateCoupons(Long userId);
	
	/**
	 * 领取优惠券
	 * @param userId
	 * @param couponId
	 * @return
	 */
	boolean receiveCoupon(Long userId,Long couponId);
	
	/**
	 * 是否已领取过优惠券
	 * @param userId
	 * @param couponId
	 * @return
	 */
	boolean isReceivedCoupon(Long userId,Long couponId);
	
	/**
	 * 获取指定的可用优惠券
	 * @param userId
	 * @param couponId
	 * @return
	 */
	MallCouponRecord getMyCanUseCoupon(Long userId,Long couponId);
	
	/**
	 * 优惠券置为已使用
	 * @param couponId
	 * @return
	 */
	boolean setCouponUsed(Long userId,Long couponId);
}
